📋 ESPECIFICACIONES DE EVALUACIÓN

Práctica Unidad 1 - Aplicaciones Web Orientadas a Servicios

⚠️ CRITERIOS OBLIGATORIOS

Los siguientes elementos son OBLIGATORIOS para aprobar la práctica:

  • Aplicación desplegada y funcionando en PythonAnywhere
  • Repositorio de GitHub con código completo
  • Video de demostración con tu rostro visible
  • Base de datos MySQL configurada y funcionando
  • Panel de administración accesible
  • CRUD completo demostrado en el video

🎯 SISTEMA DE CALIFICACIÓN

Rango de Puntos Calificación Nivel Descripción
90-100 A - Excelente Sobresaliente Cumple todos los requisitos y supera expectativas
80-89 B - Muy Bueno Notable Cumple todos los requisitos satisfactoriamente
70-79 C - Bueno Aprobado Cumple la mayoría de requisitos con calidad aceptable
60-69 D - Suficiente Aprobado mínimo Cumple requisitos mínimos con deficiencias menores
0-59 F - Insuficiente Reprobado No cumple con los requisitos mínimos

📊 DESGLOSE DETALLADO DE PUNTOS

1. Configuración del Entorno (10 puntos)

Instalación correcta de Python, Django y MySQL 3 pts
Entorno virtual creado y correctamente activado 3 pts
requirements.txt completo con todas las dependencias 2 pts
Archivo .env configurado y protegido (.gitignore) 2 pts

2. Proyecto Django (15 puntos)

Proyecto Django creado correctamente con manage.py 3 pts
Estructura de directorios organizada y lógica 3 pts
settings.py configurado apropiadamente (DB, static, media) 4 pts
Separación de configuración desarrollo/producción 3 pts
SECRET_KEY y DEBUG manejados desde .env 2 pts

3. Base de Datos MySQL (15 puntos)

Base de datos MySQL creada con nombre correcto 3 pts
Conexión Django-MySQL funcionando sin errores 4 pts
Usuario con privilegios adecuados creado 3 pts
Charset UTF-8 (utf8mb4) configurado 2 pts
Pruebas de conexión exitosas (python manage.py check) 3 pts

4. Modelos de Datos (15 puntos)

Modelo Autor con campos completos y validaciones 3 pts
Modelo Libro con ForeignKey, ManyToMany y validators 4 pts
Modelos Categoría y Editorial implementados 3 pts
Modelo Préstamo con lógica de negocio 2 pts
Métodos __str__ y @property implementados 1 pt
Migraciones creadas y aplicadas exitosamente 2 pts

5. Vistas y URLs (10 puntos)

Vista de inicio (index/home) funcional 2 pts
Vistas de lista (libros, autores) con queryset optimizado 2 pts
Vistas de detalle funcionando correctamente 2 pts
Sistema de búsqueda/filtros operativo 2 pts
URLs configuradas con nombres y namespaces 2 pts

6. Templates y Frontend (10 puntos)

Template base con herencia correcta 2 pts
Templates de lista y detalle creados 3 pts
Bootstrap 5 integrado y responsive 2 pts
CSS personalizado aplicado 2 pts
JavaScript básico para interactividad 1 pt

7. Panel de Administración (5 puntos)

Modelos registrados en admin.py 2 pts
Personalización del admin (list_display, search, filters) 2 pts
Superusuario creado y accesible 1 pt

8. Control de Versiones (10 puntos)

Repositorio Git inicializado correctamente 2 pts
.gitignore configurado (venv, .env, *.pyc, etc.) 2 pts
Commits con mensajes descriptivos y frecuentes 3 pts
Repositorio en GitHub accesible y completo 2 pts
README.md completo con instrucciones 1 pt

9. Despliegue en PythonAnywhere (10 puntos)

Aplicación desplegada y accesible públicamente 4 pts
Base de datos MySQL en producción funcionando 2 pts
Archivos estáticos (CSS, JS, imágenes) cargando 2 pts
Configuración de producción (DEBUG=False, ALLOWED_HOSTS) 2 pts

10. Documentación y Buenas Prácticas (10 puntos)

Código documentado con docstrings 3 pts
Nombres de variables y funciones descriptivos 2 pts
Código limpio y bien estructurado 2 pts
Manejo básico de errores (try-except) 2 pts
README con instrucciones claras de instalación 1 pt

✅ LISTA DE VERIFICACIÓN PARA EVALUADOR

  • URL de GitHub válida y repositorio accesible
  • URL de PythonAnywhere funcional sin errores 500/404
  • Video de demostración con rostro visible del estudiante
  • CRUD completo demostrado (Create, Read, Update, Delete)
  • Sistema de autenticación funcionando (login/logout admin)
  • Base de datos con datos de prueba suficientes
  • Navegación entre páginas sin errores
  • Diseño responsive (probado en diferentes tamaños)
  • Búsqueda y filtros operativos
  • Archivos estáticos cargando correctamente

❌ CAUSAS DE REPROBACIÓN AUTOMÁTICA

  • No presentar video de demostración
  • Aplicación no desplegada o inaccesible
  • Código copiado sin entender (plagio detectado)
  • No aparece el rostro del estudiante en el video
  • CRUD no funcional (errores críticos)
  • Base de datos no configurada o sin datos
  • Repositorio de GitHub vacío o incompleto

🎁 PUNTOS EXTRA (Hasta +40 puntos)

Funcionalidad Extra Puntos Requisitos
API REST con Django REST Framework +10 Endpoints funcionales y documentados
Sistema de autenticación de usuarios +8 Login, register, logout completos
Pruebas unitarias (tests) +7 Mínimo 10 tests escritos
Paginación en listas +5 Implementada en todas las listas
Filtros avanzados +5 Por múltiples criterios
Diseño UI/UX excepcional +5 Diseño personalizado único

📤 FORMATO DE ENTREGA

Enviar al profesor:

  1. Enlace de GitHub: https://github.com/usuario/biblioteca-django-uth
  2. Enlace de PythonAnywhere: https://usuario.pythonanywhere.com
  3. Enlace de Video: Google Drive con permisos públicos
  4. Credenciales Admin: Usuario y contraseña del superusuario (mensaje privado)
  5. Documento Resumen (opcional): PDF con capturas de pantalla